package cn.wen.yinxiu.product.service;

import cn.wen.yinxiu.common.to.order.OrderTO;
import cn.wen.yinxiu.common.to.product.SkuInfoTO;
import cn.wen.yinxiu.product.vo.AddSkuInfoVO;
import cn.wen.yinxiu.product.vo.SkuInfoVO;
import cn.wen.yinxiu.product.vo.StockLockedVO;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.wen.yinxiu.common.toolkit.PageUtils;
import cn.wen.yinxiu.product.entity.SkuInfoEntity;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

/**
 *
 * @ClassName: SkuInfoService
 * @Author 小飞
 * @Email coderwen22@163.com
 * @Date 2023-05-22 09:55:17
 * @Description: sku信息的Service类
 */
public interface SkuInfoService extends IService<SkuInfoEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 存储商品信息
     *
     * @param imageList
     * @param skuDescList
     * @param skuInfo
     * @return
     */
    boolean saveSkuInfo(MultipartFile[] imageList, MultipartFile[] skuDescList, String skuInfo);

    /**
     * 作品删除商品信息
     *
     * @param productId
     * @param worksId
     * @return
     */
    boolean deleteSkuInfoByWorks(Long productId, Long worksId);

    /**
     * 修改作品的商品信息
     *
     * @param imageList
     * @param skuDescList
     * @param skuInfo
     * @return
     */
    boolean updateSkuInfoByWorks(MultipartFile[] imageList, MultipartFile[] skuDescList, String skuInfo);

    /**
     * 通过商品Id获取商品的基本信息
     *
     * @param productId
     * @return
     */
    SkuInfoVO getSkuInfoByProductId(Long productId);

    /**
     * 获取信息
     *
     * @param skuId
     * @return
     */
    SkuInfoTO getSkuInfoById(Long skuId);

    /**
     * 解锁库存
     *
     * @param to
     */
    void unlockStock(StockLockedVO to);

    /**
     * 解锁库存
     *
     * @param orderTo
     */
    void unlockStock(OrderTO orderTo);
}

